
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import legacy from '@vitejs/plugin-legacy'

import postcssPluginPx2rem from "postcss-plugin-px2rem"; //引入插件
const px2remOptions = {

  rootValue: 192,  //换算基数， 默认100 ,也就是1440px ，这样的话把根标签的字体规定为1rem为50px,这样就可以从设计稿上量出多少个px直接在代码中写多少px了
  unitPrecision: 5, //允许REM单位增长到的十进制数字，其实就是精度控制
  // propWhiteList: ['.ss'], // 默认值是一个空数组，这意味着禁用白名单并启用所有属性。
  // propBlackList: [], // 黑名单
  // exclude:false,  //默认false，可以（reg）利用正则表达式排除某些文件夹的方法，例如/(node_module)/ 。如果想把前端UI框架内的px也转换成rem，请把此属性设为默认值
  selectorBlackList: [], //要忽略并保留为px的选择器
  // ignoreIdentifier: false, //（boolean/string）忽略单个属性的方法，启用ignoreidentifier后，replace将自动设置为true。
  // replace: true, // （布尔值）替换包含REM的规则，而不是添加回退。
  mediaQuery: false, //（布尔值）允许在媒体查询中转换px
  minPixelValue: 0  //设置要替换的最小像素值(3px会被转rem)。 默认 0
}

import path from 'path'
// https://vitejs.dev/config/
export default defineConfig({

  base: "./",

  plugins: [
    vue(),

    // 桌面要注释
    // legacy({
    //   targets: ['firefox < 49', 'chrome < 60'],
    //   additionalLegacyPolyfills: ['regenerator-runtime/runtime'],
    //   renderLegacyChunks: true,
    //   polyfills: [
    //     'es.symbol',
    //     'es.promise',
    //     'es.promise.finally',
    //     'es/map',
    //     'es/set',
    //     'es.array.filter',
    //     'es.array.for-each',
    //     'es.array.flat-map',
    //     'es.object.define-properties',
    //     'es.object.define-property',
    //     'es.object.get-own-property-descriptor',
    //     'es.object.get-own-property-descriptors',
    //     'es.object.keys',
    //     'es.object.to-string',
    //     'web.dom-collections.for-each',
    //     'esnext.global-this',
    //     'esnext.string.match-all'
    //   ]
    // })

  ],
  assetsInclude: ['**/*.glb', '**/*.gltf'],
  server: {
    // 构建模式所需的特有配置
    host: '0.0.0.0',
    port: 8002,
    open: true,
    proxy: {

      '/api': {
        target: 'http://192.168.50.81:10002/api/',
        changeOrigin: true,
        rewrite: path => path.replace(/^\/api/, '')
      },
    }
  },
  resolve: {
    // 配置路径别名
    extensions: ['.js', '.vue', '.json'],
    alias: {
      '@': path.resolve(__dirname, 'src')
    }
  },
  css: {
    postcss: {
      plugins: [postcssPluginPx2rem(px2remOptions)]
    }
  }
})
